/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.loja.model.entity.compra;

import br.com.loja.model.entity.Switchable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import br.com.loja.model.entity.estoque.ItemEstoque;
import br.com.loja.view.swing.Composition;
import br.com.loja.view.swing.model.FormField;
import br.com.loja.view.swing.model.IgnoreTableModel;
import java.io.Serializable;

/**
 *
 * @author David Luiz
 */
@Entity
@Table(name = "item_pedido_compra")
@Composition(PedidoCompra.class)
public class ItemPedidoCompra implements Switchable, Serializable {

    public static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long idItemPedidoCompra;
    private Boolean pedidoAberto;
    @ManyToOne
    private ItemCompra itemCompra;
    @ManyToOne
    private PedidoCompra pedidoCompra;

    @FormField(visible = false)
    @IgnoreTableModel
    private boolean dead;

    public ItemPedidoCompra() {
    }

    /**
     * @return the idItemPedidoCompra
     */
    public Long getIdItemPedidoCompra() {
        return idItemPedidoCompra;
    }

    /**
     * @param idItemPedidoCompra the idItemPedidoCompra to set
     */
    public void setIdItemPedidoCompra(Long idItemPedidoCompra) {
        this.idItemPedidoCompra = idItemPedidoCompra;
    }

    /**
     * @return the pedidoAberto
     */
    public Boolean getPedidoAberto() {
        return pedidoAberto;
    }

    /**
     * @param pedidoAberto the pedidoAberto to set
     */
    public void setPedidoAberto(Boolean pedidoAberto) {
        this.pedidoAberto = pedidoAberto;
    }

    /**
     * @return the itemCompra
     */
    public ItemCompra getItemCompra() {
        return itemCompra;
    }

    /**
     * @param itemCompra the itemCompra to set
     */
    public void setItemCompra(ItemCompra itemCompra) {
        this.itemCompra = itemCompra;
    }

    /**
     * @return the itemEstoque
     */
    /**
     * @return the pedidoCompra
     */
    public PedidoCompra getPedidoCompra() {
        return pedidoCompra;
    }

    /**
     * @param pedidoCompra the pedidoCompra to set
     */
    public void setPedidoCompra(PedidoCompra pedidoCompra) {
        this.pedidoCompra = pedidoCompra;
    }

    /**
     * @return the dead
     */
    public boolean isDead() {
        return dead;
    }

    /**
     * @param dead the dead to set
     */
    public void setDead(boolean dead) {
        this.dead = dead;
    }

    @Override
    public String toString() {
        ItemEstoque itemEstoque = this.getItemCompra().getItemEstoque();
        return itemEstoque.getProduto().getCategoria().getNome() + " " + itemEstoque.getProduto().getDescricao();
    }
}
